package com.peanut.bosskg.entity.invoice;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;

/**
 * 申请开票请求实体
 *
 * @Author :  peanut
 * @Created : 2020/11/23 下午11:13
 */
@Data
public class ApplyInvoiceRequestDTO implements Serializable {

    private static final long serialVersionUID = -1L;
    /**--------- 以下为必填—————————————**/
    /**
     * 落地服务公司ID
     **/
    @ApiModelProperty(value = "落地服务公司ID")
    @NotNull(message = "落地服务公司ID不可为空")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long providerId;
    /**
     * 发票类型Id
     **/
    @ApiModelProperty(value = "发票类型Id")
    @NotNull(message = "发票类型Id不可为空")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long invoiceTypeId;
    /**
     * 申请开票金额（单位：分）
     **/
    @ApiModelProperty(value = "申请开票金额")
    @NotNull(message = "申请开票金额不可为空")
    @JsonSerialize(using = ToStringSerializer.class)
    @Size(max = 19, message = "申请开票金额长度有误")
    private Long amt;
    /**---------以下为非必填—————————————**/
    /**
     * 申请开票备注
     **/
    @ApiModelProperty(value = "申请开票备注")
    private String invoiceMemo;
    /**
     * 快递收件人员默认是系统中录入
     **/
    @ApiModelProperty(value = "快递收件人员")
    private String contact;
    /**
     * 收件人电话默认是系统中录入
     **/
    @ApiModelProperty(value = "收件人电话")
    private String mobile;
    /**
     * 收件地址默认是系统中录入
     **/
    @ApiModelProperty(value = "收件地址")
    private String postAddress;

    /**
     * 发票类型 PLAIN(普票)或SPECIAL(专票):
     */
    @ApiModelProperty(value = "发票类型")
    private String invoiceType;

}
